{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true,
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "# 导入所需包\n",
    "[代码链接](https://blog.csdn.net/qq_34714751/article/details/85610966)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "outputs": [],
   "source": [
    "import torch\n",
    "from torch.utils import data  # 获取迭代数据\n",
    "from torch.autograd import Variable  # 获取变量\n",
    "import torchvision\n",
    "from torch.utils.data import Dataset, DataLoader\n",
    "from torchvision.datasets import mnist  # 获取数据集\n",
    "import matplotlib.pyplot as plt"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "# 2. 获取数据集\n",
    "## 获取数据集,对数据集进行预处理"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "outputs": [],
   "source": [
    "\n",
    "def get_dataloader(mode):\n",
    "    \"\"\"\n",
    "    获取数据集加载\n",
    "    :param mode:\n",
    "    :return:\n",
    "    \"\"\"\n",
    "    #准备数据迭代器\n",
    "    # 这里我已经下载好了，所以是否需要下载写的是false\n",
    "    #准备数据集，其中0.1307，0.3081为MNIST数据的均值和标准差，这样操作能够对其进行标准化\n",
    "    #因为MNIST只有一个通道（黑白图片）,所以元组中只有一个值\n",
    "    dataset = torchvision.datasets.MNIST('./mini', train=mode, download=False,\n",
    "                                         transform=torchvision.transforms.Compose([\n",
    "                                             torchvision.transforms.ToTensor(),\n",
    "                                             torchvision.transforms.Normalize(\n",
    "                                                 (0.1307,), (0.3081,))\n",
    "                                         ]))\n",
    "\n",
    "    return DataLoader(dataset, batch_size=64, shuffle=True)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 如果本地没有数据集：\n",
    "~~~python\n",
    "train_data = mnist.MNIST(data_path,train=True,transform=data_tf,download=True)\n",
    "~~~\n",
    "## 等待下载，直到下载完成\n",
    "~~~python\n",
    "train_data = mnist.MNIST(data_path,train=True,transform=data_tf,download=False)\n",
    "test_data = mnist.MNIST(data_path,train=False,transform=data_tf,download=False)\n",
    "~~~\n",
    "\n",
    "# 3. 定义网络结构\n",
    "\n",
    "| **CNN网络结构** | **输入shape**     | **卷积核**  | **激活函数** | **输出图像**      |\n",
    "| --------------- | ----------------- | ----------- | ------------ | ----------------- |\n",
    "| conv1           | [128,1,28,28]     | [3,3,1,16]  | ReLU         | [128, 16, 14, 14] |\n",
    "| conv2           | [128, 16, 14, 14] | [3,3,16,32] | ReLU         | [128, 32, 7, 7]   |\n",
    "| conv3           | [128, 32, 7, 7]   | [3,3,32,64] | ReLU         | [128, 64, 4, 4]   |\n",
    "| conv4           | [128, 64, 4, 4]   | [3,3,64,64] | ReLU         | [128, 64, 2, 2]   |"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CNNnet(\n",
      "  (conv1): Sequential(\n",
      "    (0): Conv2d(1, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))\n",
      "    (1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    (2): ReLU()\n",
      "  )\n",
      "  (conv2): Sequential(\n",
      "    (0): Conv2d(16, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))\n",
      "    (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    (2): ReLU()\n",
      "  )\n",
      "  (conv3): Sequential(\n",
      "    (0): Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))\n",
      "    (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    (2): ReLU()\n",
      "  )\n",
      "  (conv4): Sequential(\n",
      "    (0): Conv2d(64, 64, kernel_size=(2, 2), stride=(2, 2))\n",
      "    (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
      "    (2): ReLU()\n",
      "  )\n",
      "  (mlp1): Linear(in_features=256, out_features=100, bias=True)\n",
      "  (mlp2): Linear(in_features=100, out_features=10, bias=True)\n",
      ")\n"
     ]
    }
   ],
   "source": [
    "# 定义网络结构\n",
    "class CNNnet(torch.nn.Module):\n",
    "    def __init__(self):\n",
    "        super(CNNnet, self).__init__()\n",
    "        self.conv1 = torch.nn.Sequential(\n",
    "            torch.nn.Conv2d(in_channels=1,\n",
    "                            out_channels=16,\n",
    "                            kernel_size=3,\n",
    "                            stride=2,\n",
    "                            padding=1),\n",
    "            torch.nn.BatchNorm2d(16),\n",
    "            torch.nn.ReLU()\n",
    "        )\n",
    "        self.conv2 = torch.nn.Sequential(\n",
    "            torch.nn.Conv2d(16, 32, 3, 2, 1),\n",
    "            torch.nn.BatchNorm2d(32),\n",
    "            torch.nn.ReLU()\n",
    "        )\n",
    "        self.conv3 = torch.nn.Sequential(\n",
    "            torch.nn.Conv2d(32, 64, 3, 2, 1),\n",
    "            torch.nn.BatchNorm2d(64),\n",
    "            torch.nn.ReLU()\n",
    "        )\n",
    "        self.conv4 = torch.nn.Sequential(\n",
    "            torch.nn.Conv2d(64, 64, 2, 2, 0),\n",
    "            torch.nn.BatchNorm2d(64),\n",
    "            torch.nn.ReLU()\n",
    "        )\n",
    "        self.mlp1 = torch.nn.Linear(2 * 2 * 64, 100)\n",
    "        self.mlp2 = torch.nn.Linear(100, 10)\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = self.conv1(x)\n",
    "        x = self.conv2(x)\n",
    "        x = self.conv3(x)\n",
    "        x = self.conv4(x)\n",
    "        x = self.mlp1(x.view(x.size(0), -1))\n",
    "        x = self.mlp2(x)\n",
    "        return x\n",
    "\n",
    "\n",
    "model = CNNnet()\n",
    "print(model)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "# 4. 定义损失和优化器\n",
    "* (1)使用交叉熵损失\n",
    "\n",
    "* (2)使用Adam优化器"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "outputs": [],
   "source": [
    "loss_func = torch.nn.CrossEntropyLoss()\n",
    "opt = torch.optim.Adam(model.parameters(), lr=0.001)\n",
    "plt.rcParams[\"font.sans-serif\"] = [\"SimHei\"]\n",
    "plt.rcParams[\"axes.unicode_minus\"] = False"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练次数0---0:\t--损失值2.3021326065063477\n",
      "训练次数0---200:\t--损失值0.14805850386619568\n",
      "训练次数0---400:\t--损失值0.14984099566936493\n",
      "训练次数0---600:\t--损失值0.014098240993916988\n",
      "训练次数0---800:\t--损失值0.32539185881614685\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy:\t 0.9375\n",
      "accuracy:\t 0.984375\n",
      "总准确率：\t 0.9810907643312102\n",
      "总准确率：\t 0.9810907643312102\n",
      "[0.9375, 0.9375, 1.0, 0.984375, 0.984375, 0.953125, 0.984375, 0.984375, 0.96875, 0.984375, 1.0, 0.953125, 0.984375, 1.0, 0.96875, 1.0, 0.984375, 0.96875, 0.984375, 1.0, 1.0, 0.96875, 1.0, 0.984375, 0.96875, 1.0, 0.953125, 0.984375, 0.984375, 0.984375, 0.984375, 0.96875, 0.96875, 0.9375, 1.0, 0.984375, 1.0, 0.984375, 0.96875, 0.96875, 0.921875, 1.0, 0.96875, 1.0, 0.96875, 0.953125, 0.984375, 0.984375, 0.953125, 1.0, 0.984375, 0.984375, 0.984375, 0.984375, 0.984375, 0.984375, 0.984375, 0.984375, 0.96875, 0.984375, 0.96875, 0.984375, 0.984375, 0.96875, 0.984375, 1.0, 0.953125, 0.984375, 0.984375, 1.0, 0.96875, 0.9375, 0.984375, 0.984375, 1.0, 0.96875, 1.0, 0.984375, 0.953125, 0.984375, 1.0, 1.0, 0.984375, 1.0, 0.96875, 0.984375, 0.953125, 0.984375, 1.0, 1.0, 0.96875, 1.0, 1.0, 1.0, 1.0, 1.0, 0.984375, 1.0, 0.953125, 0.96875, 0.984375, 1.0, 0.984375, 1.0, 0.984375, 0.96875, 1.0, 0.953125, 1.0, 1.0, 0.953125, 0.96875, 0.953125, 0.953125, 0.96875, 1.0, 1.0, 0.9375, 0.96875, 1.0, 0.984375, 0.984375, 0.953125, 1.0, 1.0, 0.96875, 1.0, 0.953125, 0.96875, 0.96875, 0.984375, 0.953125, 0.96875, 1.0, 0.96875, 0.96875, 0.96875, 0.96875, 1.0, 1.0, 0.96875, 0.984375, 0.984375, 1.0, 1.0, 1.0, 1.0, 0.984375, 1.0, 1.0, 1.0, 1.0, 1.0, 0.984375, 0.96875, 0.96875, 1.0]\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练次数1---0:\t--损失值0.10362251847982407\n",
      "训练次数1---200:\t--损失值0.13094082474708557\n",
      "训练次数1---400:\t--损失值0.02802843414247036\n",
      "训练次数1---600:\t--损失值0.0908673033118248\n",
      "训练次数1---800:\t--损失值0.019065428525209427\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy:\t 0.953125\n",
      "accuracy:\t 1.0\n",
      "总准确率：\t 0.9828821656050956\n",
      "总准确率：\t 0.9828821656050956\n",
      "[0.953125, 0.96875, 1.0, 0.984375, 0.984375, 0.984375, 0.96875, 0.953125, 1.0, 0.984375, 0.96875, 0.984375, 0.984375, 0.953125, 1.0, 0.984375, 1.0, 1.0, 1.0, 1.0, 0.96875, 1.0, 0.953125, 0.96875, 0.953125, 1.0, 0.953125, 1.0, 1.0, 0.984375, 1.0, 0.984375, 1.0, 0.953125, 0.96875, 0.984375, 0.953125, 0.96875, 0.984375, 1.0, 0.984375, 0.953125, 0.984375, 0.96875, 0.984375, 0.984375, 0.984375, 0.984375, 0.984375, 1.0, 0.984375, 0.984375, 0.984375, 0.96875, 0.984375, 1.0, 0.96875, 0.96875, 0.984375, 0.953125, 0.984375, 0.984375, 1.0, 1.0, 0.953125, 0.96875, 0.984375, 0.984375, 1.0, 1.0, 0.984375, 0.96875, 0.984375, 0.984375, 1.0, 1.0, 1.0, 0.984375, 1.0, 0.984375, 0.96875, 0.984375, 1.0, 1.0, 1.0, 0.96875, 0.984375, 1.0, 1.0, 1.0, 1.0, 0.96875, 0.953125, 1.0, 0.984375, 0.984375, 1.0, 1.0, 1.0, 0.96875, 1.0, 0.96875, 0.96875, 1.0, 0.9375, 0.96875, 0.984375, 0.984375, 1.0, 0.984375, 0.953125, 1.0, 1.0, 0.953125, 0.953125, 0.96875, 1.0, 0.984375, 1.0, 1.0, 1.0, 1.0, 1.0, 0.96875, 0.984375, 0.984375, 0.96875, 0.953125, 1.0, 0.96875, 0.984375, 1.0, 1.0, 1.0, 0.984375, 0.984375, 0.984375, 1.0, 0.953125, 0.984375, 1.0, 0.984375, 0.984375, 0.984375, 0.96875, 1.0, 1.0, 1.0, 0.984375, 0.96875, 0.984375, 1.0, 0.984375, 0.953125, 1.0, 0.984375, 0.875]\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练次数2---0:\t--损失值0.004628395661711693\n",
      "训练次数2---200:\t--损失值0.008009461686015129\n",
      "训练次数2---400:\t--损失值0.03157059848308563\n",
      "训练次数2---600:\t--损失值0.033077336847782135\n",
      "训练次数2---800:\t--损失值0.0054109906777739525\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy:\t 0.984375\n",
      "accuracy:\t 0.984375\n",
      "总准确率：\t 0.9869625796178344\n",
      "总准确率：\t 0.9869625796178344\n",
      "[0.984375, 0.984375, 0.984375, 0.953125, 1.0, 1.0, 0.984375, 0.984375, 0.984375, 0.96875, 1.0, 0.9375, 0.984375, 0.984375, 0.984375, 0.96875, 0.984375, 1.0, 0.984375, 0.984375, 0.96875, 1.0, 1.0, 1.0, 1.0, 0.984375, 0.984375, 0.984375, 0.96875, 1.0, 0.984375, 1.0, 1.0, 1.0, 1.0, 1.0, 0.96875, 1.0, 1.0, 0.984375, 0.984375, 0.984375, 1.0, 0.984375, 0.984375, 1.0, 0.953125, 0.984375, 1.0, 0.984375, 0.984375, 1.0, 0.96875, 1.0, 1.0, 0.984375, 1.0, 0.984375, 0.953125, 1.0, 1.0, 0.984375, 0.96875, 1.0, 1.0, 0.984375, 0.96875, 1.0, 0.96875, 1.0, 1.0, 0.984375, 1.0, 0.984375, 0.953125, 1.0, 1.0, 0.96875, 0.984375, 0.953125, 0.984375, 0.984375, 0.984375, 1.0, 0.984375, 0.96875, 0.984375, 0.96875, 1.0, 0.984375, 0.984375, 0.96875, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.984375, 0.953125, 0.984375, 0.953125, 1.0, 0.984375, 0.96875, 0.96875, 0.984375, 1.0, 1.0, 0.984375, 0.953125, 0.984375, 0.984375, 1.0, 0.984375, 0.984375, 1.0, 1.0, 0.984375, 1.0, 1.0, 1.0, 1.0, 0.984375, 1.0, 1.0, 1.0, 0.984375, 1.0, 0.984375, 1.0, 1.0, 1.0, 1.0, 1.0, 0.96875, 0.984375, 0.953125, 1.0, 1.0, 0.984375, 0.984375, 1.0, 1.0, 1.0, 1.0, 0.984375, 0.984375, 0.96875, 0.984375, 1.0, 1.0, 1.0, 0.953125, 1.0, 0.96875, 0.9375]\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def train(epoch):\n",
    "    loss_count = []\n",
    "    # 获取训练集\n",
    "    train_loader = get_dataloader(True)\n",
    "    for i, (x, y) in enumerate(train_loader):\n",
    "        batch_x = Variable(x)  # torch.Size([128, 1, 28, 28])\n",
    "        batch_y = Variable(y)  # torch.Size([128])\n",
    "        # 获取最后输出\n",
    "        out = model(batch_x)  # torch.Size([128,10])\n",
    "        # 获取损失\n",
    "        loss = loss_func(out, batch_y)\n",
    "        # 使用优化器优化损失\n",
    "        opt.zero_grad()  # 清空上一步残余更新参数值\n",
    "        loss.backward()  # 误差反向传播，计算参数更新值\n",
    "        opt.step()  # 将参数更新值施加到net的parmeters上\n",
    "        if i % 200 == 0:\n",
    "            loss_count.append(loss.item())\n",
    "            print('训练次数{}---{}:\\t--损失值{}'.format(\n",
    "                epoch,\n",
    "                i, loss.item()))\n",
    "            # 保存训练模型，以便下次使用\n",
    "            torch.save(model.state_dict(), r'./model/cnn_model.pkl')\n",
    "    # 打印测试诗句\n",
    "    # print(loss_count)\n",
    "    plt.figure('PyTorch_CNN_的损失值')\n",
    "    plt.plot(range(len(loss_count)), loss_count, label='Loss')\n",
    "    plt.title('PyTorch_CNN_的损失值')\n",
    "    plt.legend()\n",
    "    plt.show()\n",
    "\n",
    "\n",
    "def test():\n",
    "    # 获取测试集\n",
    "    accuracy_sum = []\n",
    "    test_loader = get_dataloader(False)\n",
    "    for index, (a, b) in enumerate(test_loader):\n",
    "        test_x = Variable(a)\n",
    "        test_y = Variable(b)\n",
    "        out = model(test_x)\n",
    "        accuracy = torch.max(out, 1)[1].numpy() == test_y.numpy()\n",
    "        accuracy_sum.append(accuracy.mean())\n",
    "        if index % 100 == 0:\n",
    "            print('accuracy:\\t', accuracy.mean())\n",
    "\n",
    "    print('总准确率：\\t', sum(accuracy_sum) / len(accuracy_sum))\n",
    "    # 精确率图\n",
    "    print('总准确率：\\t', sum(accuracy_sum) / len(accuracy_sum))\n",
    "    plt.figure('Accuracy')\n",
    "    print(accuracy_sum)\n",
    "    plt.plot(range(len(accuracy_sum)), accuracy_sum, 'o', label='accuracy')\n",
    "    plt.title('Pytorch_CNN_准确率')\n",
    "    plt.legend()\n",
    "    plt.show()\n",
    "\n",
    "\n",
    "# 进行测试和训练\n",
    "for epoch in range(3):\n",
    "    train(epoch)\n",
    "    test()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "# 卷积方法的使用：`torch.nn.Conv2d()`"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}